Implemented interactively with TypeScript